﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace GestorDeFlotasDesktop.AbmChofer
{
    public partial class AbmChofer : MasterPage
    {
        public capaDatos.SQLSyntaxisGeneration inst = new capaDatos.SQLSyntaxisGeneration(); 
        ArrayList array = new ArrayList();
        Form ventanPadre;
        DataTable dtgral;
        
        public AbmChofer(Form ventanaParam)
        {
            InitializeComponent();
            ocultarMenu(ref ventanPadre, ventanaParam);


            chUserHab.Checked = true;
        }
        private void modificarCampos(int numeroFila)
        {


            // posicion 0 primera columna, prosicion comum,count - 1 ultima columna
            
            tbNombre.Text = Convert.ToString(dtgral.Rows[numeroFila].ItemArray[1]);
            tbApellido.Text = Convert.ToString(dtgral.Rows[numeroFila].ItemArray[2]);
            tbDni.Text = Convert.ToString(dtgral.Rows[numeroFila].ItemArray[3]);
            tbMail.Text = Convert.ToString(dtgral.Rows[numeroFila].ItemArray[6]);
            tbTelefono.Text = Convert.ToString(dtgral.Rows[numeroFila].ItemArray[4]);
           //parsear fecha
            //parsear domicilio
            chUserHab.Checked = Convert.ToBoolean(dtgral.Rows[numeroFila].ItemArray[4]);
            mostrarFechaNacimiento(Convert.ToString(dtgral.Rows[numeroFila].ItemArray[7]));
            mostrarDireccion(Convert.ToString(dtgral.Rows[numeroFila].ItemArray[5]));


            
          // posicion 0 primera columna, prosicion comum,count - 1 ultima columna
            
           
            
        



        }
        
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
         
             setearCheckBox(e.RowIndex, array, dataGridView1, null, btnAlta);
        //    btAlta.Visible = true;
          //  BTBaja.Visible = true;
            if (array.Contains(e.RowIndex))
            {
                pnDatos.Visible = true;
                modificarCampos(e.RowIndex);
            }
            else
            {
                
                btnAlta.Text = "Alta";
                btnBaja.Visible = true;
            } 
        }
        private void BTBaja_Click(object sender, EventArgs e)
        {

        }
        private void pnDatos_Click(object sender, EventArgs e)
        {
        }
        private void btAlta_Click(object sender, EventArgs e)
        {
            pnDatos.Visible = true;
            btnModif.Visible = true;

            btnAlta.Visible = false;
            btnModif.Text = "Cancelar";
            //BTBaja.Visible = false;
            btnBaja.Text = "Dar Alta";

        }

        private void AbmChofer_Load(object sender, EventArgs e)
        {
            pnDatos.Visible = false;
            btnModif.Visible = false;
            btnAlta.Text = "Alta";
            btnBaja.Text = "Baja";
            btnModif.Text = "Modificar";
            
          //  dataGridView1.DataSource = SampleDataTable(2);

        }

        private void AbmChofer_FormClosing(object sender, FormClosingEventArgs e)
        {
            ventanPadre.Visible = true; 
        }

        private void BtbBuscar_Click(object sender, EventArgs e)
        {



            ArrayList parametrosSql = new ArrayList();


            int dniChofer;

            btnModif.Visible = true;
            if (tbDni.Text == "")
            {
                tbDni.Text = "0";
            }
            dniChofer = Convert.ToInt32(tbDni.Text);
               
            
            parametrosSql = parametrosStoredProcedure(paramsNames("nombreChofer", "apellidoChofer", "dniChofer"), paramsValues(tbNombre.Text, tbApellido.Text, dniChofer));

            dtgral = inst.executeSp("PELUSA.buscar_chofer", parametrosSql);

            
            
            
            
            
            
            this.dataGridView1.DataSource = dtgral;
            btnAlta.Visible = false;
            btnBaja.Text = "Baja";
            btnModif.Text = "Modificar";
      
 
        }

        private void BTBaja_Click_1(object sender, EventArgs e)
        {
            string direccionCompletaChofer;
            string fechaNacimientoChofer;
            chUserHab.Checked = false;
            btnModif.Visible = false;
            //visualizarControlesAlta(false);
            btnAlta.Visible = false;
    

            
            if (btnBaja.Text == "Dar Alta")
            {
                
            if((tbNombre.Text=="")   ||
                (tbApellido.Text=="")||
                (tbTelefono.Text=="")||
                (tbDni.Text == "") ||
               // (tbMail.Text=="")    ||
                (tbDia.Text =="") ||
                (tbMes.Text =="") ||
                (tbAnio.Text =="") ||
                (tbCalle.Text =="") ||
                (tbPiso.Text =="") ||
                (tbLocalidad.Text =="")||
                (tbNumero.Text=="")||
                (tbDpto.Text==""))  {

                    btnModif.Visible = true;
                MessageBox.Show("Todos los campos son obligatorios","Campos Obligatoria",MessageBoxButtons.OK,MessageBoxIcon.Error); // MENSAJE DE ERROR	
            
            
            //visualizarControlesAlta(false);
            
            } 

            else             {
                ArrayList parametrosSql = new ArrayList();
                direccionCompletaChofer = string.Concat(tbCalle.Text, " ", tbNumero.Text, " ");
                int dniChofer, telefono;
                if (tbDni.Text == "")
                {
                    tbDni.Text = "0";
                }
                fechaNacimientoChofer = string.Concat(tbDia.Text, "/", tbMes.Text, "/", tbAnio.Text);

                dniChofer = Convert.ToInt32(tbDni.Text);
                telefono = Convert.ToInt32(tbTelefono.Text);
                parametrosSql = parametrosStoredProcedure(paramsNames("nombreChofer", "apellidoChofer", "dniChofer", "mailChofer", "telefonoChofer", "fechaNacimientoChofer", "direccionChofer"), paramsValues(tbNombre.Text, tbApellido.Text, dniChofer, tbMail.Text, telefono, fechaNacimientoChofer, direccionCompletaChofer));
                dtgral = inst.executeSp("PELUSA.Insertar_chofer", parametrosSql);
                this.dataGridView1.DataSource = dtgral;
                
                chUserHab.Checked = false;
                btnModif.Visible = false;
                //visualizarControlesAlta(false);
                btnAlta.Visible = false;
             }     
            }
            
            if (btnBaja.Text == "Dar Baja")
                    {
                    ArrayList parametrosSql = new ArrayList();
                    //llamar al sp que updatee los datos

                    direccionCompletaChofer = string.Concat(tbCalle.Text, " ", tbNumero.Text, " ");
                    int dniChofer, telefono;
                    if (tbDni.Text == "")
                    {
                        tbDni.Text = "0";
                    }
                    fechaNacimientoChofer = string.Concat(tbDia.Text, "/", tbMes.Text, "/", tbAnio.Text);

                    dniChofer = Convert.ToInt32(tbDni.Text);
                    telefono = Convert.ToInt32(tbTelefono.Text);

                    parametrosSql = parametrosStoredProcedure(paramsNames("nombreChofer", "apellidoChofer", "dniChofer", "mailChofer", "telefonoChofer", "fechaNacimientoChofer", "direccionChofer"), paramsValues(tbNombre.Text, tbApellido.Text, dniChofer, tbMail.Text, telefono, fechaNacimientoChofer, direccionCompletaChofer));
                    dtgral = inst.executeSp("PELUSA.Actualizar_chofer", parametrosSql);
                    this.dataGridView1.DataSource = dtgral;
                
                    }  
        




                  if (btnBaja.Text == "Baja")
            {
                btnModif.Visible = true;
                btnAlta.Visible = false;
                btnModif.Text = "Cancelar";
                //BTBaja.Visible = false;
                btnBaja.Text = "Dar Baja";

                
            }
          if (btnBaja.Text == "Confirmar Modificacion")
          {

              if ((tbNombre.Text == "") ||
                  (tbApellido.Text == "") ||
                  (tbTelefono.Text == "") ||
                  (tbDni.Text == "") ||
                  // (tbMail.Text=="")    ||
                  (tbDia.Text == "") ||
                  (tbMes.Text == "") ||
                  (tbAnio.Text == "") ||
                  (tbCalle.Text == "") ||
                  (tbPiso.Text == "") ||
                  (tbLocalidad.Text == "") ||
                  (tbNumero.Text == "") ||
                  (tbDpto.Text == "")||
                  (tbCP.Text == ""))
              {

                  btnModif.Visible = true;
                  MessageBox.Show("Todos los campos son obligatorios", "Campos Obligatoria", MessageBoxButtons.OK, MessageBoxIcon.Error); // MENSAJE DE ERROR	


                  //visualizarControlesAlta(false);

              } else{

              
              
              ArrayList parametrosSql = new ArrayList();
              //llamar al sp que updatee los datos



              direccionCompletaChofer = string.Concat(tbCalle.Text, " " , tbNumero.Text, "|", tbCP.Text, "|", tbLocalidad.Text, "|", tbDpto.Text, "|", tbPiso.Text);
              int dniChofer, telefono;
              if (tbDni.Text == "")
              {
                  tbDni.Text = "0";
              }
              fechaNacimientoChofer = string.Concat(tbDia.Text, "/", tbMes.Text, "/", tbAnio.Text);

              dniChofer = Convert.ToInt32(tbDni.Text);
              telefono = Convert.ToInt32(tbTelefono.Text);

              parametrosSql = parametrosStoredProcedure(paramsNames("nombreChofer", "apellidoChofer", "dniChofer", "mailChofer", "telefonoChofer", "fechaNacimientoChofer", "direccionChofer"), paramsValues(tbNombre.Text, tbApellido.Text, dniChofer, tbMail.Text, telefono, fechaNacimientoChofer, direccionCompletaChofer));
              dtgral = inst.executeSp("PELUSA.Actualizar_chofer", parametrosSql);
              this.dataGridView1.DataSource = dtgral;
              
          }    
          }
        }
        private void limpiar_campos()
            {
            tbAnio.Text = "";
            tbApellido.Text = "";
            tbCalle.Text = "";
            tbDia.Text = "";
            tbDni.Text = "";
            tbDpto.Text = "";
            tbLocalidad.Text = "";
            tbMail.Text = "";
            tbMes.Text = "";
            tbNombre.Text = "";
            tbNumero.Text = "";
            tbPiso.Text = "";
            tbTelefono.Text = "";
           dataGridView1.DataSource = "" ;
           dataGridView1.DataMember = "";
                
            }
        private void btnmodif_Click(object sender, EventArgs e)
        {
               if (btnModif.Text == "Cancelar")
            {
                pnDatos.Visible = false;
                btnModif.Visible = false;
                btnModif.Text = "Modificar";
                btnBaja.Text = "Baja";
                btnAlta.Text = "Alta";
                btnAlta.Visible = true;
                btnBaja.Visible = true;
                limpiar_campos();

            }else{
               if (btnModif.Text == "Modificar")
               {
                   pnDatos.Visible = true;
                   btnModif.Visible = true;
                   btnModif.Text = "Cancelar";
                   btnBaja.Text = "Confirmar Modificacion";
                   btnAlta.Visible = false;


               }
            }
        }

        private void textBox9_TextChanged(object sender, EventArgs e)
        {

        }

        private string darDireccion()
        {
            string direccion;
            
            direccion = tbCalle.Text + (char)32 + tbNumero.Text + "|" + tbLocalidad.Text + "|" + tbDpto.Text + "|" + tbPiso.Text + "|" + tbCP.Text;
            return direccion;
        }

        private void mostrarDireccion(string direccion)
        {
             string calleCompleta = direccion.Split('|')[0];

            if(direccion.Split('|').Count() > 1){
          tbNumero.Text = calleCompleta.Substring(calleCompleta.Length - 4);
             tbCalle.Text  = calleCompleta.Substring(0,calleCompleta.Length - 4);
             tbLocalidad.Text = direccion.Split('|')[2] ;
            tbDpto.Text = direccion.Split('|')[3] ;
            tbPiso.Text = direccion.Split('|')[4];
            tbCP.Text = direccion.Split('|')[1] ;


            }
            else
            {
                tbNumero.Text = direccion.Substring(direccion.Length - 4);
                tbCalle.Text = direccion.Substring(0, direccion.Length - 4);

            }
        }
        private void mostrarFechaNacimiento(string fechaN)
        {

            tbDia.Text = fechaN.Split('/')[0];
            tbMes.Text = fechaN.Split('/')[1];
            tbAnio.Text = fechaN.Split('/')[2].Substring(0, 4);
        }

        private void tbCalle_TextChanged(object sender, EventArgs e)
        {

        }

        private void pnDatos_Paint(object sender, PaintEventArgs e)
        {

        }

        private void chUserHab_CheckedChanged(object sender, EventArgs e)
        {
            if (tbDni.Text != "")
            {
            inst.executeQuery("UPDATE PELUSA.chofer set [activoChofer]= '" + Convert.ToString(chUserHab.Checked) + "' WHERE dniChofer = " + tbDni.Text + " IF @@ERROR <> 0 BEGIN PRINT N'Ocurrio un error al traer la habilitacion.';END ELSE BEGIN select status = 'ok';   END;;;");
            }
            else
            {
                chUserHab.Checked = false; 
            };
        }

    }
}
